Embodiments of the present invention relate to networking and more particularly to techniques for supporting hitless or non-stop routing (NSR) capability for multicast routing.
Multicast routing protocols are used to distribute data to multiple recipients. IP multicasting enables a sender device (or sender host) to send a packet to a set of recipients. The set of recipients is referred to as a multicast group and is represented by an IP address referred to as the multicast address. A multicast address thus corresponds to or represents a group of IP hosts that have joined the multicast group and want to receive packets whose destination address is the multicast address. By specifying a multicast address as the destination address for a packet (referred to as a multicast packet or multicast IP datagram), the packet is then delivered to the zero or more members (receivers) of the multicast group.
The membership of a multicast group is dynamic—hosts may join and leave multicast groups at any time. There is typically no restriction on the location or number of members in a multicast group. An IP host may be a member of more than one multicast group at a time. A host need not be a member of a group to be able to send multicast packets. Internet Group Membership Protocol (IGMP) is an example of a protocol that facilitates formation and management of multicast groups. Hosts may use IGMP to join or leave multicast groups. Hosts may also use IGMP to advertise their membership in a multicast group.
Forwarding of multicast packets from senders to receivers is performed by a fabric of network devices (e.g., routers, switches) that execute a multicast routing protocol. For example, multicast routing may be performed using Protocol Independent Multicast (PIM), which is a collection of multicast routing protocols including protocols such as PIM Sparse-Mode, PIM dense Mode, Bi-directional PIM, and others. PIM and its variants provide a set of protocols that can be used by network devices such as routers providing multicast routing services to distribute information about multicast group membership.
Network devices such as routers that are configured to perform multicast routing are also referred to as multicast routers. A multicast router typically maintains multicast state information (also referred to as multicast information) that is used by the router to forward a multicast packet to its multicast group receivers.
In order to reduce the down-time, several network devices provide redundant components such as redundant management processors (MPs) that are configured to facilitate data forwarding performed by the network device. In a router with redundant MPs, at any point in time, one of the MPs is configured to operate in active mode while the other MP operates in standby mode. The MP operating in standby mode thus provides redundancy. Various events during the operation of the router may cause a switchover (also sometimes referred to as a failover), which causes the standby MP to become the active MP and takes over data forwarding functions, including multicast forwarding functions, from the previous active MP. The previous active MP may become the standby MP as a result of the switchover.
When a switchover occurs, the new active MP has to rebuild its multicast state information from scratch. This rebuilding or restoring of the multicast state can take several seconds or even minutes, during which all line-rate multicast traffic is interrupted until the multicast state information has been rebuilt by the new active MP.
The building of multicast state information by a network device such as a router is also dependent upon receiving information from the network device's neighboring network devices. This further delays the restoration of the multicast state information thereby further adding to the down time of the network device. For example, according to the PIM protocol, PIM neighbors periodically exchange PIM hello messages to monitor the status of neighboring devices. Each PIM hello packet comprises a GenID (per RFC 4601), which is used to indicate to a network device's neighbors when a change of state has occurred in the network device (e.g., due to a switchover or failover). For example, when a switchover occurs in a router causing a new active management processor to take over, the new active management processor modifies the GenID and sends PIM hello packets with the new GenID to its neighbors. When a neighbor detects a PIM hello packet with a new GenID, it sends its multicast information to the sender of the hello packets. The multicast information may include information related to (*, G) and (S, G) multicast routes. The new active management processor then uses the multicast information received from its neighbors to build its multicast forwarding state. This process can take time during which multicast routing services provided by the router are interrupted. Further, in order to be able to build its multicast state, the router imposes a requirement that its neighboring network devices support GenID processing.